package classfile

/*

	可选的（第三组）定长属性 （2个字节长度的属性内容）
SourceFile_attribute {
    u2 attribute_name_index;
    u4 attribute_length;
    u2 sourcefile_index;
}
*/
type SourceFileAttribute struct {
	cp              ConstantPool
	sourceFileIndex uint16
}

/*
	这里读取的是属性名为SourceFile,值的内容固定为2个字节长度的数据

	这2个字节长度的数据，读取之后是一个数字，代表着常量池中的一个索引数字
	依据这个索引数字，再从常量池中读取到实际的常量值，这里就是一个字符串值。
	表示的是class文件它的源代码文件名字
*/
func (self *SourceFileAttribute) readInfo(reader *ClassReader) {
	self.sourceFileIndex = reader.readUint16()
}

func (self *SourceFileAttribute) FileName() string {
	return self.cp.getUtf8(self.sourceFileIndex)
}
